﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Domain.MainModule.Entities;

namespace Application.MainModule.VirtualAccountsManagement
{
    public interface IVirtualAccountManagementService
    {
        /// <summary>
        /// Add new virtual account
        /// </summary>
        /// <param name="virtual account">VirtualAccount to be added</param>
        void AddVirtualAccount(VirtualAccount virtualAccount);

        /// <summary>
        /// Change existing virtual account
        /// </summary>
        /// <param name="virtual account">Existing virtual account to modify</param>
        void ChangeVirtualAccount(VirtualAccount virtualAccount);

        /// <summary>
        /// Remove existing virtual account
        /// </summary>
        /// <param name="virtual account">VirtualAccount to remove</param>
        void RemoveVirtualAccount(VirtualAccount virtualAccount);

        List<VirtualAccount> FindVirtualAccounts(Guid userId);

        VirtualAccount FindVirtualAccountById(Guid virtualAccountId);

    }
}
